package main

import "fmt"

// 猫类和狗类都有自己的叫的方法
type cat struct{}
type dog struct{}

func (c cat) speak() {
	fmt.Println("miumiumiu~")
}
func (c dog) speak() {
	fmt.Println("wangwangwang~")
}

type animal interface { // anima接口约束了特定结构体实现的方法
	speak() // 只要实现了speak方法的结构体都是animal类型
}

func beida(x animal) {
	x.speak()
}
func main() {
	c1 := cat{}
	d1 := dog{}

	beida(c1)
	beida(d1)
}
